package com.software.service;

import com.software.dao.ProductDAO;
import com.software.model.Product;

import java.util.ArrayList;
import java.util.List;

public class ProductService {

    private ProductDAO productDAO;

    // 构造函数，初始化 ProductDAO
    public ProductService() {
        this.productDAO = new ProductDAO();
    }

    // 添加商品
    public void addProduct(Product product) {
        // 在这里你可以加入额外的验证逻辑，例如检查价格是否大于0，库存数量是否足够等
        if (product.getProductPrice() <= 0) {
            System.out.println("商品价格无效！");
            return;
        }
        if (product.getQuantity() < 0) {
            System.out.println("商品库存数量不能为负！");
            return;
        }
        productDAO.addProduct(product);
    }

    // 根据商品 ID 获取商品
    public Product getProductById(String productId) {
        return productDAO.getProductById(productId);
    }

    // 获取所有商品
    public List<Product> getAllProducts() {
        return productDAO.getAllProducts();
    }

    // 更新商品信息
    public void updateProduct(Product product) {
        // 在这里可以加入一些检查逻辑
        if (product.getProductPrice() <= 0) {
            System.out.println("商品价格无效！");
            return;
        }
        if (product.getQuantity() < 0) {
            System.out.println("商品库存数量不能为负！");
            return;
        }
        productDAO.updateProduct(product);
    }

    // 根据商品 ID 删除商品
    public void deleteProduct(String productId) {
        productDAO.deleteProduct(productId);
    }

    // 获取推荐商品
    public List<Product> getRecommendedProducts() {
        // 获取所有商品后，筛选推荐的商品
        List<Product> allProducts = productDAO.getAllProducts();
        List<Product> recommendedProducts = new ArrayList<>();
        for (Product product : allProducts) {
            if (product.getRecommend()) {
                recommendedProducts.add(product);
            }
        }
        return recommendedProducts;
    }
}
